Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Odnajdowanie tekstu


Rekomendowane odpowiedzi

Opublikowano

Witam.

Mam taki dokument tekstowy np.:

#MPC*Forum

Jak zrobić żeby do jednej zmiennej zapisało mi MPC, a do drugiej Forum?

 

Wiedziałem jak ale zapomniałem :(.

Tutaj znalazłem coś takiego ale to chyba służy do czego innego:

http://pl.wikibooks.org/wiki/AutoIt/Napisy_%28stringi%29#Poszukiwanie_wewn.C4.85trz_stringu_mniejszego_substringu

obraz24.png


Weteran
Opublikowano

Odcinanie z lewej.

Local $result = StringLeft("I am a string", 3)
MsgBox(0, "Leftmost 3 characters are:", $result)

 

Odcinanie z prawej.

Local $var = StringRight("I am a string", 3)
MsgBox(0, "Rightmost 3 characters are:", $var)

1329036830-U154499.png
Opublikowano
#Include <Array.au3>

Local $string = "MPC*FORUM"

$hArray = StringSplit($string, "*")

_ArrayDisplay($hArray)

; $hArray[0] = ilość części w tablicy ;p

Weteran
Opublikowano

Możesz wyłączyć jakiś proces.. nie pamiętam jaki, wyświetli się niebieski ekran i od razu wyłączenie komputera.

1329036830-U154499.png
Opublikowano

OK. Mam problem skrypt nie chce działać, działa działa, a jak wchodzi do kolejnej pętli to pokazuje się coś takiego na pomarańczowo:

--> IE.au3 Warning from function internal function __IEIsObjType, Cannot register internal error handler, cannot trap COM errors (Use _IEErrorHandlerRegister() to register a user error handler)
--> IE.au3 Warning from function internal function __IEIsObjType, Cannot register internal error handler, cannot trap COM errors (Use _IEErrorHandlerRegister() to register a user error handler)
### COM Error ! Number: 80020009 ScriptLine: 3973 Description:
--> IE.au3 Warning from function _IELoadWait, Cannot register internal error handler, cannot trap COM errors (Use _IEErrorHandlerRegister() to register a user error handler)
--> IE.au3 Warning from function internal function __IEIsObjType, Cannot register internal error handler, cannot trap COM errors (Use _IEErrorHandlerRegister() to register a user error handler)
--> IE.au3 Warning from function _IELoadWait, Cannot register internal error handler, cannot trap COM errors (Use _IEErrorHandlerRegister() to register a user error handler)

obraz24.png


Opublikowano

#include <IE.au3>
#include <string.au3>
#include <Array.au3>
#include <Misc.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Timers.au3>
#include <SMTP.au3>

       $CreateIE = _IECreate('http://controlcodes.cba.pl/objects/PO_01.php', 0, 0)
       _IELoadWait($CreateIE)
       $BodyRead = _IEBodyReadHTML($CreateIE)
       $String = _StringBetween($BodyRead, '(ok) bmone2n.moveAd(); /* ]]> */</script>', '<!--]>-->')
       $Code = StringSplit($String[0], "x")
       If $Code[1] == "#CODE" Then
           MsgBox(0, "", "Chyba dziala")
       EndIf


 

Czemu MsgBox nie wyskakuje?

obraz24.png


Opublikowano

@Edit

 

OK nie ważne.

 

Czemu działa:

 

#include <IE.au3>
#include <string.au3>
#include <Array.au3>
#include <Misc.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Timers.au3>
#include <SMTP.au3>

    $CreateIE = _IECreate('http://controlcodes.cba.pl/objects/PO_01.php', 0, 0)
    _IELoadWait($CreateIE)
    $BodyRead = _IEBodyReadHTML($CreateIE)
    $String = _StringBetween($BodyRead, '(ok) bmone2n.moveAd(); /* ]]> */</script>', '<!--]>-->')
    $Code = StringSplit($String[0], "x")
    If $Code[2] == "1111" Then
	    MsgBox(0, "", $Code[2])
    EndIf

While 1
   If ProcessExists("iexplore.exe") Then
       ProcessClose("iexplore.exe")
   Else
       Exit
   EndIf
WEnd

 

A jak w If daję $Code[1] == "#code"

To nie pokazuje się MsgBox?

obraz24.png


Weteran
Opublikowano

Skoro masz dwie wartości to używasz $Code[0] i $Code[1]..

Bo ty używasz $Code[1] i $Code[2], omijasz jeden wynik, a z tego co napisałeś wnioskuje, że są tylko 2, więc $Code[2] nie istnieje.

1329036830-U154499.png
Opublikowano
Opublikowano

$Code[0] ; powinno zwrócić ilość elementów w array'u
$Code[1] ; powinen zwrócić 1-szy znaleziony element
$Code[2] ; powinen zwrócić 2-gi znaleziony element..

 

Zobacz jakie stringi masz w array'u za pomocą _ArrayDisplay..

 

#Edit

 

#include <String.au3>
#include <Array.au3>

Local $BodyRead = "(ok) bmone2n.moveAd(); /* ]]> */</script>1111x1337M4n1ak<!--]>-->" ; poprawny example
;Local $BodyRead = "(ok) bmone2n.moveAd(); /* ]]> */</script> 1111x1337M4n1ak<!--]>-->" ; błędny example - spacja przed 1111 i już dupa 

$String = _StringBetween($BodyRead, '(ok) bmone2n.moveAd(); /* ]]> */</script>', '<!--]>-->')
If @error Then
   MsgBox(0, "", "Nie znaleziono niczego co pasuje =d")
Else
   $Code = StringSplit($String[0], "x")
   _ArrayDisplay($Code)
   If $Code[1] == "1111" Then
       MsgBox(0, "Sukces!", "Znaleziono: " & $Code[1])
   Else
       MsgBox(0, "Sukces!", "Znaleziono, ale nie pasuje on do patternu ;/" & @CRLF & "Sprawdź, czy nie opuściłeś żadnej spacji whatever..")
   EndIf
EndIf

 

Kod na szybko zrobiony do własnych celów, żeby wyłowić błąd :P

Brakuje spacji albo czegoś innego w _StringBetween(), sprawdź zakomentowaną część :P

Opublikowano

Jak z tablicy kopiuje wartość 1 to:

[1]|
#CODE

A jak kopiuje z niej wartość 2 to:

[2]|2012

 

Więc jak to zapisać żeby działało?

 

@Edit OK. Chyba sobie poradziłem.

 

Wie ktoś jak pobrać plik z internetu do określonej lokazlizacji?

obraz24.png


Opublikowano

Dzięki jednak trwa to trochę i zrobię to w inny sposób.

To chyba koniec pytań :D.

Tylko jeszcze takie jedno małe:

Jak się kompiluje skrypt to lepiej wybrać niższy czy wyższy stopień kompresji?

obraz24.png


Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...